const config = require('../config');
Component({
	options: {
		styleIsolation: 'shared'
	},
	properties: {
		data: {
			type: Object,
			value: {}
		}
	},
	data: {
		formula: '',
		isBlock: false
	},
	observers: {
		'data': function(data) {
			this.processData(data);
		}
	},
	lifetimes:{
		attached:function(){
			this.processData(this.properties.data);
		}
	},
	methods: {
		processData: function(data) {
			const _ts = this;
			if (!data) {
				return
			}
			
			// 尝试多种方式获取属性
			let dataAttr = null;
			if (data.attrs) {
				dataAttr = data.attrs;
			} else if (data.attr) {
				dataAttr = data.attr;
			} else if (data.tag === 'latex' && data.attrs) {
				dataAttr = data.attrs;
			}
			
			if (!dataAttr) {
				// 如果还是没有，尝试直接从data获取
				dataAttr = data;
			}
			
			// 解码 LaTeX 公式
			let formula = '';
			if (dataAttr.value) {
				try {
					formula = decodeURIComponent(dataAttr.value);
				} catch (e) {
					formula = dataAttr.value;
				}
			}
			
			// 判断是块级还是行内公式
			const isBlock = dataAttr.type === 'block';

			// 设置公式数据
			if (formula) {
				_ts.setData({
					formula: formula,
					isBlock: isBlock
				});
			}
		}
	}
})